
//2563.统计公平数对的数目
class Solution {
public:
    long long countFairPairs(vector<int>& nums, int lower, int upper) {
        //排序+相向三指针
        int n=nums.size();
        sort(nums.begin(),nums.end());

        int l=n-1,r=n-1;
        long long ret=0;
        for(int i=0;i<n;i++)
        {
            if(i>=r) break;
            while(l>i&&nums[i]+nums[l]>=lower) l--;
            while(r>i&&nums[i]+nums[r]>upper) r--;
            if(l<i) l=i;

            if(r>l)
            ret+=r-l;
        }
        return ret;
    }
};